Merge from origin/emacs-29
authorEli Zaretskii <eliz@gnu.org>
Sat, 17 Feb 2024 09:54:48 +0000 (04:54 -0500)
committerEli Zaretskii <eliz@gnu.org>
Sat, 17 Feb 2024 09:54:48 +0000 (04:54 -0500)
45f9af61b8e Remove references to phst@google.com.
7256690a3ca * BUGS: Note how to report critical security issues.
1035669b38b Add cross-reference to ELisp manual Caveats
61a14507627 Improve directory prompt used by package-vc-checkout
0c7c8210cb6 Minor Tramp doc adaption
df243f785d4 Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs ...
17a395e04c6 ;; Fix typo in the Tramp documentation
614b244a7fa * Improve reproducibility of inferred values by native comp
9f9da26e0dc Handle typescript ts grammar breaking change for function...
717d8c4285f Don't quote 't' in doc strings

1  2 
.mailmap
doc/misc/tramp.texi
lisp/emacs-lisp/comp-cstr.el
lisp/emacs-lisp/package-vc.el
lisp/net/tramp.el
lisp/outline.el
lisp/progmodes/typescript-ts-mode.el

diff --cc .mailmap
Simple merge
Simple merge
Simple merge
index 37980c28b0215c04982c199b248a00527630c360,5c5486de2903ed58639f687f52d8edefcd731a27..ef056c7909b154d327cf0e8ecef9b30e53663b18
@@@ -939,10 -825,11 +939,10 @@@ for the last released version of the pa
    (interactive
     (let* ((name (package-vc--read-package-name "Fetch package source: ")))
       (list (cadr (assoc name package-archive-contents #'string=))
-            (read-file-name "Clone into new or empty directory: " nil nil t nil
-                            (lambda (dir) (or (not (file-exists-p dir))
+            (read-directory-name "Clone into new or empty directory: " nil nil
+                                 (lambda (dir) (or (not (file-exists-p dir))
                                               (directory-empty-p dir))))
             (and current-prefix-arg :last-release))))
 -  (setf directory (expand-file-name directory))
    (package-vc--archives-initialize)
    (let ((pkg-spec (or (package-vc--desc->spec pkg-desc)
                        (and-let* ((extras (package-desc-extras pkg-desc))
Simple merge
diff --cc lisp/outline.el
Simple merge
index e9c6afff4403f638a3425d6ad9974d3788f8552b,7021f012dcd99123a3000887efc6dfdaa19d50ba..9ee9432e4eec1eef691dd18ffa3e432786311fba
@@@ -202,227 -215,182 +215,228 @@@ typescript/tsx grammar, `function' beco
  (defun typescript-ts-mode--font-lock-settings (language)
    "Tree-sitter font-lock settings.
  Argument LANGUAGE is either `typescript' or `tsx'."
-   (treesit-font-lock-rules
-    :language language
-    :feature 'comment
-    `([(comment) (hash_bang_line)] @font-lock-comment-face)
-    :language language
-    :feature 'constant
-    `(((identifier) @font-lock-constant-face
-       (:match "\\`[A-Z_][0-9A-Z_]*\\'" @font-lock-constant-face))
-      [(true) (false) (null)] @font-lock-constant-face)
-    :language language
-    :feature 'keyword
-    `([,@typescript-ts-mode--keywords] @font-lock-keyword-face
-      [(this) (super)] @font-lock-keyword-face)
-    :language language
-    :feature 'string
-    `((regex pattern: (regex_pattern)) @font-lock-regexp-face
-      (string) @font-lock-string-face
-      (template_string) @js--fontify-template-string
-      (template_substitution ["${" "}"] @font-lock-misc-punctuation-face))
-    :language language
-    :override t ;; for functions assigned to variables
-    :feature 'declaration
-    `((function
-       name: (identifier) @font-lock-function-name-face)
-      (function_declaration
-       name: (identifier) @font-lock-function-name-face)
-      (function_signature
-       name: (identifier) @font-lock-function-name-face)
-      (method_definition
-       name: (property_identifier) @font-lock-function-name-face)
-      (method_signature
-       name: (property_identifier) @font-lock-function-name-face)
-      (required_parameter (identifier) @font-lock-variable-name-face)
-      (optional_parameter (identifier) @font-lock-variable-name-face)
-      (variable_declarator
-       name: (identifier) @font-lock-function-name-face
-       value: [(function) (arrow_function)])
-      (variable_declarator
-       name: (identifier) @font-lock-variable-name-face)
-      (enum_declaration (identifier) @font-lock-type-face)
-      (extends_clause value: (identifier) @font-lock-type-face)
-      ;; extends React.Component<T>
-      (extends_clause value: (member_expression
-                              object: (identifier) @font-lock-type-face
-                              property: (property_identifier) @font-lock-type-face))
-      (arrow_function
-       parameter: (identifier) @font-lock-variable-name-face)
-      (variable_declarator
-       name: (array_pattern
-              (identifier)
-              (identifier) @font-lock-function-name-face)
-       value: (array (number) (function)))
-      (catch_clause
-       parameter: (identifier) @font-lock-variable-name-face)
-      ;; full module imports
-      (import_clause (identifier) @font-lock-variable-name-face)
-      ;; named imports with aliasing
-      (import_clause (named_imports (import_specifier
-                                     alias: (identifier) @font-lock-variable-name-face)))
-      ;; named imports without aliasing
-      (import_clause (named_imports (import_specifier
-                                     !alias
-                                     name: (identifier) @font-lock-variable-name-face)))
-      ;; full namespace import (* as alias)
-      (import_clause (namespace_import (identifier) @font-lock-variable-name-face)))
-    :language language
-    :feature 'identifier
-    `((nested_type_identifier
-       module: (identifier) @font-lock-type-face)
-      (type_identifier) @font-lock-type-face
-      (predefined_type) @font-lock-type-face
-      (new_expression
-       constructor: (identifier) @font-lock-type-face)
-      (enum_body (property_identifier) @font-lock-type-face)
-      (enum_assignment name: (property_identifier) @font-lock-type-face)
-      (variable_declarator
-       name: (identifier) @font-lock-variable-name-face)
-      (for_in_statement
-       left: (identifier) @font-lock-variable-name-face)
-      (arrow_function
-       parameters:
-       [(_ (identifier) @font-lock-variable-name-face)
-        (_ (_ (identifier) @font-lock-variable-name-face))
-        (_ (_ (_ (identifier) @font-lock-variable-name-face)))]))
-    :language language
-    :feature 'property
-    `((property_signature
-       name: (property_identifier) @font-lock-property-name-face)
-      (public_field_definition
-       name: (property_identifier) @font-lock-property-name-face)
-      (pair key: (property_identifier) @font-lock-property-use-face)
-      ((shorthand_property_identifier) @font-lock-property-use-face))
-    :language language
-    :feature 'expression
-    '((assignment_expression
-       left: [(identifier) @font-lock-function-name-face
-              (member_expression
-               property: (property_identifier) @font-lock-function-name-face)]
-       right: [(function) (arrow_function)]))
-    :language language
-    :feature 'function
-    '((call_expression
-       function:
-       [(identifier) @font-lock-function-call-face
-        (member_expression
-         property: (property_identifier) @font-lock-function-call-face)]))
-    :language language
-    :feature 'pattern
-    `((pair_pattern
-       key: (property_identifier) @font-lock-property-use-face
-       value: [(identifier) @font-lock-variable-name-face
-               (assignment_pattern left: (identifier) @font-lock-variable-name-face)])
-      (array_pattern (identifier) @font-lock-variable-name-face)
-      ((shorthand_property_identifier_pattern) @font-lock-variable-name-face))
-    :language language
-    :feature 'jsx
-    (append (tsx-ts-mode--font-lock-compatibility-bb1f97b language)
-          `((jsx_attribute (property_identifier) @typescript-ts-jsx-attribute-face)))
-    :language language
-    :feature 'number
-    `((number) @font-lock-number-face
-      ((identifier) @font-lock-number-face
-       (:match "\\`\\(?:NaN\\|Infinity\\)\\'" @font-lock-number-face)))
-    :language language
-    :feature 'operator
-    `([,@typescript-ts-mode--operators] @font-lock-operator-face
-      (ternary_expression ["?" ":"] @font-lock-operator-face))
-    :language language
-    :feature 'bracket
-    '((["(" ")" "[" "]" "{" "}"]) @font-lock-bracket-face)
-    :language language
-    :feature 'delimiter
-    '((["," "." ";" ":"]) @font-lock-delimiter-face)
-    :language language
-    :feature 'escape-sequence
-    :override t
-    '((escape_sequence) @font-lock-escape-face)))
+   (let ((func-exp (tsx-ts-mode--font-lock-compatibility-function-expression language)))
+     (treesit-font-lock-rules
+      :language language
+      :feature 'comment
+      `([(comment) (hash_bang_line)] @font-lock-comment-face)
+      :language language
+      :feature 'constant
+      `(((identifier) @font-lock-constant-face
+         (:match "\\`[A-Z_][0-9A-Z_]*\\'" @font-lock-constant-face))
+        [(true) (false) (null)] @font-lock-constant-face)
+      :language language
+      :feature 'keyword
+      `([,@typescript-ts-mode--keywords] @font-lock-keyword-face
+        [(this) (super)] @font-lock-keyword-face)
+      :language language
+      :feature 'string
+      `((regex pattern: (regex_pattern)) @font-lock-regexp-face
+        (string) @font-lock-string-face
+        (template_string) @js--fontify-template-string
+        (template_substitution ["${" "}"] @font-lock-misc-punctuation-face))
+      :language language
+      :override t ;; for functions assigned to variables
+      :feature 'declaration
+      `((,func-exp
+         name: (identifier) @font-lock-function-name-face)
+        (function_declaration
+         name: (identifier) @font-lock-function-name-face)
+        (function_signature
+         name: (identifier) @font-lock-function-name-face)
+        (method_definition
+         name: (property_identifier) @font-lock-function-name-face)
+        (method_signature
+         name: (property_identifier) @font-lock-function-name-face)
+        (required_parameter (identifier) @font-lock-variable-name-face)
+        (optional_parameter (identifier) @font-lock-variable-name-face)
+        (variable_declarator
+         name: (identifier) @font-lock-function-name-face
+         value: [(,func-exp) (arrow_function)])
+        (variable_declarator
+         name: (identifier) @font-lock-variable-name-face)
+        (enum_declaration (identifier) @font-lock-type-face)
+        (extends_clause value: (identifier) @font-lock-type-face)
+        ;; extends React.Component<T>
+        (extends_clause value: (member_expression
+                                object: (identifier) @font-lock-type-face
+                                property: (property_identifier) @font-lock-type-face))
+        (arrow_function
+         parameter: (identifier) @font-lock-variable-name-face)
+        (variable_declarator
+         name: (array_pattern
+                (identifier)
+                (identifier) @font-lock-function-name-face)
+         value: (array (number) (,func-exp)))
+        (catch_clause
+         parameter: (identifier) @font-lock-variable-name-face)
+        ;; full module imports
+        (import_clause (identifier) @font-lock-variable-name-face)
+        ;; named imports with aliasing
+        (import_clause (named_imports (import_specifier
+                                       alias: (identifier) @font-lock-variable-name-face)))
+        ;; named imports without aliasing
+        (import_clause (named_imports (import_specifier
+                                       !alias
+                                       name: (identifier) @font-lock-variable-name-face)))
+        ;; full namespace import (* as alias)
+        (import_clause (namespace_import (identifier) @font-lock-variable-name-face)))
+      :language language
+      :feature 'identifier
+      `((nested_type_identifier
+         module: (identifier) @font-lock-type-face)
+        (type_identifier) @font-lock-type-face
+        (predefined_type) @font-lock-type-face
+        (new_expression
+         constructor: (identifier) @font-lock-type-face)
+        (enum_body (property_identifier) @font-lock-type-face)
+        (enum_assignment name: (property_identifier) @font-lock-type-face)
+        (variable_declarator
+         name: (identifier) @font-lock-variable-name-face)
+        (for_in_statement
+         left: (identifier) @font-lock-variable-name-face)
+        (arrow_function
+         parameters:
+         [(_ (identifier) @font-lock-variable-name-face)
+          (_ (_ (identifier) @font-lock-variable-name-face))
+          (_ (_ (_ (identifier) @font-lock-variable-name-face)))]))
+      :language language
+      :feature 'property
+      `((property_signature
+         name: (property_identifier) @font-lock-property-name-face)
+        (public_field_definition
+         name: (property_identifier) @font-lock-property-name-face)
+        (pair key: (property_identifier) @font-lock-property-use-face)
+        ((shorthand_property_identifier) @font-lock-property-use-face))
+      :language language
+      :feature 'expression
+      `((assignment_expression
+         left: [(identifier) @font-lock-function-name-face
+                (member_expression
+                 property: (property_identifier) @font-lock-function-name-face)]
+         right: [(,func-exp) (arrow_function)]))
+      :language language
+      :feature 'function
+      '((call_expression
+         function:
+         [(identifier) @font-lock-function-call-face
+          (member_expression
+           property: (property_identifier) @font-lock-function-call-face)]))
+      :language language
+      :feature 'pattern
+      `((pair_pattern
+         key: (property_identifier) @font-lock-property-use-face
+         value: [(identifier) @font-lock-variable-name-face
+                 (assignment_pattern left: (identifier) @font-lock-variable-name-face)])
+        (array_pattern (identifier) @font-lock-variable-name-face)
+        ((shorthand_property_identifier_pattern) @font-lock-variable-name-face))
+      :language language
+      :feature 'jsx
+      (append (tsx-ts-mode--font-lock-compatibility-bb1f97b language)
+            `((jsx_attribute (property_identifier) @typescript-ts-jsx-attribute-face)))
+      :language language
+      :feature 'number
+      `((number) @font-lock-number-face
+        ((identifier) @font-lock-number-face
+         (:match "\\`\\(?:NaN\\|Infinity\\)\\'" @font-lock-number-face)))
+      :language language
+      :feature 'operator
+      `([,@typescript-ts-mode--operators] @font-lock-operator-face
+        (ternary_expression ["?" ":"] @font-lock-operator-face))
+      :language language
+      :feature 'bracket
+      '((["(" ")" "[" "]" "{" "}"]) @font-lock-bracket-face)
+      :language language
+      :feature 'delimiter
+      '((["," "." ";" ":"]) @font-lock-delimiter-face)
+      :language language
+      :feature 'escape-sequence
+      :override t
+      '((escape_sequence) @font-lock-escape-face))))
  
 +(defvar typescript-ts-mode--sentence-nodes
 +  '("import_statement"
 +    "debugger_statement"
 +    "expression_statement"
 +    "if_statement"
 +    "switch_statement"
 +    "for_statement"
 +    "for_in_statement"
 +    "while_statement"
 +    "do_statement"
 +    "try_statement"
 +    "with_statement"
 +    "break_statement"
 +    "continue_statement"
 +    "return_statement"
 +    "throw_statement"
 +    "empty_statement"
 +    "labeled_statement"
 +    "variable_declaration"
 +    "lexical_declaration"
 +    "property_signature")
 +  "Nodes that designate sentences in TypeScript.
 +See `treesit-thing-settings' for more information.")
 +
 +(defvar typescript-ts-mode--sexp-nodes
 +  '("expression"
 +    "pattern"
 +    "array"
 +    "function"
 +    "string"
 +    "escape"
 +    "template"
 +    "regex"
 +    "number"
 +    "identifier"
 +    "this"
 +    "super"
 +    "true"
 +    "false"
 +    "null"
 +    "undefined"
 +    "arguments"
 +    "pair")
 +  "Nodes that designate sexps in TypeScript.
 +See `treesit-thing-settings' for more information.")
 +
  ;;;###autoload
  (define-derived-mode typescript-ts-base-mode prog-mode "TypeScript"
    "Generic major mode for editing TypeScript.